<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv">
	<head>
		<title>Moment1</title>
		<link rel="stylesheet" type="text/css" href="style.css" />
	    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	</head>
	<body>
		<div id="content">
		<h1>Moment 1</h1>
			<h2>1.</h2>
			<p>
				<code>include()</code> och <code>require()</code> tar allt innehåll i den inkluderade filen och inkluderar den i nuvarande filen.
				Skillnaden mellan de båda är hur de hanterar eventuella fel. <code>include()</code> genererar en varning med fortsätter sen att exekvera koden.
				<code>require()</code> genererar ett fel och stoppar resten av koden.</p>
			<p><code>include_once()</code> och <code>require_once()</code> fungerar på samma sätt som <code>include()</code> och <code>require()</code> med skillnaden att de bara inkluderar filen en gång, dvs om filen
				redan har inkluderats så läggs den inte till igen.</p>
			
			<h2>2.</h2>
			<p><code>integer</code> kan inneha värden som är heltal.</p>
			<p><code>float</code> kan inneha värden som är flyttal(decimaltal).</p>
			<p><code>bool</code> kan inneha två värden, <code>true</code> eller <code>false.</code></p>
			<p><code>string</code> är en textsträng, den kan innehålla vilka tecken som helst.</p>
			<p><code>array</code> kan inneha värden av vilken typ som helst. Däremot måste <em>key</em> vara en <code>integer</code> eller en <code>string</code>.</p>
			
			<h2>3.</h2>
			<p><code>is_int</code> används för att undersöka om en variabel är av typen integer. Returnerar <code>true</code> om så är fallet, annars <code>false</code>.</p>
			<div class="example">
			<p><code>
				$test = 20;
				<br />
				<br />
				if(is_int($test)){<br />
					echo "$test är ett heltal";
				<br />}<br />
				else{<br />
					echo "$test är inte ett heltal";
				<br />}
			</code></p>
			<p class="test">
				<?php
				$test = 20;
				if(is_int($test)){
					echo "$test är ett heltal";
				}
				else{
					echo "$test är inte ett heltal";
				}
				?>
			</p>
			</div>
			<p><code>is_string</code> används för att undersöka om en variabel är av typen string. Returnerar <code>true</code> om så är fallet, annars <code>false</code></p>
			<div class="example">
			<p><code>
				$test = "20";
				<br />
				<br />
				if(is_string($test)){<br />
					echo "$test är en sträng";
				<br />
				}<br />
				else{<br />
					echo "$test är inte en sträng";
					<br />
				}<br />
			</code></p>
			<p class="test">
				<?php
				$test = "20";
				if(is_string($test)){
					echo "$test är en sträng";
				}
				else{
					echo "$test är inte en sträng";					
				}
				?>
			</p>
			</div>
			<p><code>isset</code> används för att undersöka om en variabel är satt och INTE är NULL. Returnerar <code>true</code> om så är fallet, annars <code>false</code></p>
			<div class="example">
			<p><code>
				$test = NULL;
				<br />
				<br />
				if(isset($test)){<br />
					echo "Ett värde finns";<br />
				}<br />
				else{<br />
					echo "Värde saknas";<br />
				}<br />
			</code></p>
			<p class="test">
				<?php
				$test = NULL;
				
				if(isset($test)){
					echo "Ett värde finns";
				}
				else{
					echo "Värde saknas";
				}
				?>
			</p>
			</div>
			<p><code>gettype</code> används för att bestämma vilken typ en variabel är av.</p>
			<div class="example">
			<p><code>
				$test = 20;<br /><br />
				
				echo gettype($test);				
			</code></p>
			<p class="test">
				<?php
					$test = 20;
				
					echo gettype($test);
				?>
			</p>
			</div>
			<p><code>is_numeric</code> används för att bestämma om en variabel är ett number eller en numerisk sträng.</p>
			<div class="example">
			<p><code>
				$tests = array(<br />
    			"42",<br /> 
    			1337,<br /> 
    			"1e4",<br /> 
    			"not numeric",<br /> 
    			array(),<br /> 
    			9.1
				);<br /><br />

				foreach ($tests as $element) {<br />
				    if (is_numeric($element)) {<br />
				        echo "'{$element}' is numeric";<br />
				    } <br />else {<br />
				        echo "'{$element}' is NOT numeric";<br />
				    }
}				
			</code></p>
			<p class="test">
				<?php
					$test = array(
					"42",
					1337,
					"1e4",
					"not numeric",
					array(),
					9.1
					);
					
					foreach ($test as $element) {
						if(is_numeric($element)){
							echo "'{$element}' är numerisk <br />";
						}
						else{
							echo "'{$element}' är INTE numerisk <br />";
						}
					}
				?>
			</p>
			</div>
			<p><code>unset</code> används för att ta bort innehållet i en variabel, t.ex. om du vill ta bort en session</p>
			<div class="example">
			<p><code>
				$test = "Testing"; <br /><br />
				
				echo $test;<br /><br />
				
				unset($test);<br /><br />
				
				echo $test;
			</code></p>
			<p class="test">
				<?php
				$test = "Testing";
				
				echo $test;
				
				unset($test);
				
				echo $test;
				?>
			</p>
			</div>
			<h2>4.</h2>
			<p>Man får följande utskrift: <em><?php $s = ' sträng'; print('enkelfnuttar $s');print("dubbelfnuttad $s"); ?></em>. 
				Anledningen är att när man använder ' ' kan man inte deklarera en 
				$variabel utan den läser $s som vanlig sträng-text så att säga. Vill man använda ' ' 
				kan man skriva <code>print('enkelfnuttar' . $s)</code></p>			
			<h2>5.</h2>
			<p>Alla dessa är superglobala variabler, vilket menar med att de är tillgängliga överallt i koden, utan att du behöver
				deklarera det innan.
				</p>
			<p><code>$_POST</code> är en funktion för att ta hand om värden skickat från forms med metoden POST. 
				Information skickat med POST är "osynlig" för andra.</p>
			<p><code>$_GET</code> är en funktion för att ta hand om värden skickat från forms med metoden GET. 
				sInformation skickat med GET är "synlig" för andra, 
				då information syns i URL:en.</p>
			<p><code>$_SESSION</code> är en variabel för att lagra information tillfälligt, t.ex. om man vill skicka information mellan sidor. 
				Det är användbart vid t.ex. sidor med inloggning. 
				När man loggat in lagras information om att du är inloggad så att man slipper logga in igen på nytt när man hoppar mellan sidor på hemsidan.
				Ett annat exempel är på en e-handelssida. När du lägger till varor i kundvagnen lagras de oftast i en session, för att komma ihåg vad du har valt
				att handla när du bläddar mellan olika sidor. Varje användare får ett unique identification(UID) för att inte blanda ihop två användare som är inne
				samtidigt på en sida. En session "dör" när man lämnar sidan.
				</p>
				<p><code>$_COOKIE</code> används för att hämta information som man lagrat i en cookie. Cookies används oftast för att identifiera en användare.
					Om du loggat in på t.ex. FB en gång och du tillåter cookies, behöver du inte logga in igen nästa gång, eftersom informationen finns lagrad
					i en cookie. 
					
					För att skapa en cookie använder man setcookie(name, value, expire, path, domain); Ex: setcookie("user", "Alex Porter", time()+3600); För att
					hämta info använder man $_COOKIE['user'];
					</p>
			</div>
	</body>
</html>